function removeHeadersFromDataTable() {
	$("div.contactListTableRepeater > table > thead").html("");
	$("div.contactListTable > table > thead").each(function(index) {
		$(this).find("tr:eq(1)").hide();
	});
}

function removeBordersFromDataTable() {
	$("div.contactListTableRepeater > table > tbody").each(function(index) {
		$(this).css("border", "0px");
		$(this).find("tr").css("border", "0px");
	});
}

function organizePaddings() {
	$("div.contactListTableRepeater > table > tbody > tr").each(
			function(index) {
				$(this).find("td > div").css("padding", "0px");
			});
}

function addContactCountStyleClass() {
	$("div.contactListTable > table > tbody > tr").each(function(index) {
		$(this).find("td > div:eq(2)").addClass("contactCount");
	});
}

function addContactInfoStyleClass() {
	$("div.contactListTable > table > tbody > tr").each(function(index) {
		$(this).find("td > div:eq(1)").addClass("contactInfo");
	});
}

function removeZebra() {
	$("div.contactListTable > table > tbody > tr").each(function(index) {
		$(this).removeClass("ui-datatable-odd");
		$(this).addClass("ui-datatable-even");
	});
}

function organizeTables() {
	removeHeadersFromDataTable();
	removeBordersFromDataTable();
	organizePaddings();
	addContactCountStyleClass();
	addContactInfoStyleClass();
	removeZebra();
	organizeKeyPad();
}

function scrollToContactChar(contactCharGroupClientId) {
	var divOffset = $('div.contactListTableRepeater').offset().top;
	var contactCharOffset = $(
			PrimeFaces.escapeClientId(contactCharGroupClientId)).offset().top;
	var contactScroll = contactCharOffset - divOffset;
	$('div.contactListTableRepeater').animate({
		scrollTop : '+=' + contactScroll + 'px'
	}, 600);
}

var charList = new Array();

function organizeKeyPad() {
	$('button.keypad-trigger').html('ABC');
	$('button.keypad-trigger').css('width', '40px');
	var extendedConfig = keyPadWidget.cfg;
	extendedConfig.beforeShow = function() {
		$("#keypad-div > div.keypad-row > button.keypad-key")
				.each(
						function(index) {
							var i;
							$(this).unbind('click');
							$(this).attr('disabled', 'disabled');
							$(this).addClass('ui-state-disabled');
							for (i = 0; i < charList.length; i++) {
								if ((charList[i] == $(this).html())
										|| ($(this).html() == "#" && (charList[i]
												.charCodeAt(0) < "A"
												.charCodeAt(0) || charList[i]
												.charCodeAt(0) > "Z"
												.charCodeAt(0)))) {
									$(this).removeAttr('disabled');
									$(this).removeClass('ui-state-disabled');
									$(this)
											.click(
													function() {
														var contactCharGroupClientId = clientId
																+ ':contactListTableRepeater:'
																+ i
																+ ':contactListTable';
														keyPadWidget.jq
																.keypad('hide');
														scrollToContactChar(contactCharGroupClientId);
													});
									break;
								}
							}
						});
	}
	$.keypad.setDefaults(extendedConfig);
}